Computers have proven to be almost indispensable for the performance of complex mathematical functions as well as for data storage and retrieval. Computers, however, lack generalized mechanisms for providing ready intercommunication via those computers by multiple user devices. Even when multiple time sharing users are connected to a single computer, that computer is primarily a single source to a single destination communication system. One user provides data to a program which manipulates the data and stores the result in an identifiable storage area. The original user or others who know the identity of the storage area can then individually have access to the stored result.
A primary mechanism for communicating between computer terminals is called electronic mail. Electronic mail communication is, as the name implies, a post office type system. A message is formulated by a sender, addressed to one or more destinations, and stored by the electronic mail system in association with the destinations. A destination user is notified of the waiting message when logging onto the system and the message can be read. A message in response to the original is sent and received in the same manner. Electronic mail requires that the sender provide an appropriate destination for each message and the resulting communication lacks real time flow.
The UNIX.RTM. operating system includes a feature called a "Pipe" which begins to generalize communication among computer programs. A Pipe allows the output of one program to be sent as input to another program. A Pipe consists primarily of a storage buffer, the location of which is known to the source and destination programs and of a synchronization arrangement to schedule buffer reading and writing. The source stores data into the buffer at the known location and the destination reads the stored information from the known location. With a Pipe both the source and destination must know the location of the intermediate buffer and implement the movement of data into and out of it. Another UNIX operating system feature, called a "Tee", permits intermediate results of a piped operation to be sent to one or more named files. The Tee may permit multiple destinations for information, but the destinations are only named files which must be read later by directly accessing them.
With existing computer communication arrangements the data sources and/or destinations must provide addressing information for all communication and are in primary control of a connection. Maintaining such a connection requires significant resources on the part of the sources and destinations and their human operators. The problems created by such an end point controlled arrangement are apparent from the lack of flexibility of these systems. For example, none provides a bidirectional connection nor allows the change of sources and destinations during a connection. What is needed in the art is a method of communication in a computer environment which removes the primary connection responsibilities from the sources and destinations and provides a flexible method of communication by centralizing control.